package chapter1;

import lombok.extern.slf4j.Slf4j;

/**
 * @author caiya
 * @date 2020/3/13 21:04
 */
@Slf4j
public class DaemonThreadTest {
    public static void main(String[] args) throws InterruptedException {
        /**
         * 守护线程
         * Java 中共有 2 种线程：用户线程和守护线程，规则是：当最后一个用户线程退出后，则 jvm 退出
         * GC 线程是一种特殊的守护线程
         */
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                log.debug("thread: {} is running", Thread.currentThread().getName());
                while (true) {

                }
            }
        });

        thread.setDaemon(true);
        thread.start();

        log.debug("程序 2s 后主线程结束，jvm 退出");
        Thread.sleep(2000);
        log.debug("jvm 退出");
    }
}
